<h1 class="entry-title entry-title-single" itemprop="headline">ABAP 开发系列(01): ABAP Development Workbench 介绍（上）</h1>
<a href="http://www.sapjx.com">http://www.sapjx.com</a>
 <div class="entry-content entry-content-single entry-content-aside" itemprop="text">
   <p>作为开篇，内容比较简单，介绍下<span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/sap" title="SAP" target="_blank">SAP</a></span>的相关概念及 <span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/sap-abap" title="ABAP" target="_blank">ABAP</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.sapjx.com/tag/workbench" title="查看Workbench中的全部文章" target="_blank">Workbench</a></span> 开发平台：</p>
<p>1）<span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/sap" title="SAP" target="_blank">SAP</a></span>相关概念；</p>
<p>2）系统架构；</p>
<p>3）<span class='wp_keywordlink_affiliate'><a href="http://www.sapjx.com/tag/sap" title="查看SAP中的全部文章" target="_blank">SAP</a></span>系统环境；</p>
<p>4）<span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/sap-abap" title="ABAP" target="_blank">ABAP</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.sapjx.com/tag/workbench" title="查看Workbench中的全部文章" target="_blank">Workbench</a></span> 相关工具   </p>
<p><span id="more-39"></span></p>
<p>&nbsp;</p>
<h2><b>1. <span class='wp_keywordlink_affiliate'><a href="http://www.sapjx.com/tag/sap" title="查看SAP中的全部文章" target="_blank">SAP</a></span></b><b>相关概念</b></h2>
<p><b><span class='wp_keywordlink_affiliate'><a href="http://www.sapjx.com/tag/sap" title="查看SAP中的全部文章" target="_blank">SAP</a></span></b>:  <span style="color: #ff0000;"><b>S</b></span>ystems<span style="color: #ff0000;"><b> A</b></span>pplications and <span style="color: #ff0000;"><b>P</b></span>roducts in Data Processing</p>
<p>通常翻译为资料处理中的系统、应用和产品。</p>
<p>&nbsp;</p>
<p><b><span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/sap-abap" title="ABAP" target="_blank">ABAP</a></span></b>/4 :  <span style="color: #ff0000;"><b>A</b></span>dvanced <span style="color: #ff0000;"><b>B</b></span>usiness <span style="color: #ff0000;"><b>A</b></span>pplication <span style="color: #ff0000;"><b>P</b></span>rogramming （高级业务应用编程语言）的缩写，4 是第四代语言；</p>
<p>是SAP开发应用程序的工具，是一种结构化程序设计的语言，也支持面向对象的程序设计方法。</p>
<p>ABAP/4不仅仅是一个开发工具，而且是一套完整的 Client/Server IDE 开发环境，</p>
<p>类似于微软的 Visual Studio、Java的Eclipse、JavaScript的 WebStorm。</p>
<p>&nbsp;</p>
<p><b>ECC 6.0</b>： <span style="color: #ff0000;"><b>E</b></span>RP <span style="color: #ff0000;"><b>C</b></span>entral  <span style="color: #ff0000;"><b>C</b></span>omponent 6.0  SAP目前版本名称</p>
<p>版本4.6C以前，是所谓的R3系统，建立在SAP Basis的基础上；</p>
<p>版本4.70以后，改为R3 Enterprise，最大的变化是SAP Web AS 取代了传统的Basis，核心业务功能模块也做了划分；</p>
<p>R3 Enterprise 之后也称为 mySAP ERP2004，基础平台演变成了SAP NetWearver，并产生了<b>SAP ECC5.0</b>，作为Enterprise的替代，</p>
<p>并集成了 BW (<em>Business Information Warehouse</em>)，SEM (<em>Strategic Enterprise Management</em>) 和 ITS (<em>Internet Transaction Server</em>)；</p>
<p>2005年开始 mySAP ERP2005 的准备，即 <b>ECC6.0</b>，最大的变化是全面转向 ESA 体系（基于消息机制的企业应用体系）</p>
<p>并引入了新的功能模块，比如 PLM 和 SRM.</p>
<p>&nbsp;</p>
<p>随着大数据时代的来临，SAP ERP的发展方向在于:</p>
<p>1.移动应用 ERP On Device</p>
<p>2.内存计算技术 <b>HANA </b>( <b>H</b>igh-Performance <b>An</b>alytic <b>A</b>ppliance )</p>
<p>它是一种基于内存计算技术的高性能实时数据计算平台，其中，SAP HANA 企业云，能让用户不需要购买相关硬件设备的情况下享受HANA的高性能。</p>
<p>&nbsp;</p>
<h2><b>2.</b><b>系统架构</b></h2>
<p>SAP的系统架构，也是通过所说的R/3 系统，是一个基于三层架构的分布式处理系统：</p>
<div id="attachment_43" style="width: 620px" class="wp-caption alignnone"><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_SAP-Architecture.png" alt="abap_1_SAP Architecture" width="610" height="402" class="alignnone size-full wp-image-457" /><p class="wp-caption-text">SAP Architecture</p></div>
<p>SAP的三层架构体系，将系统的的软件和服务分布在三个不同的层，可以分散系统负载，提高系统执行效率。</p>
<p><strong>1).</strong> Database 安装在服务器端</p>
<p><strong>2).</strong> 核心组件 安装部署在应用服务器（Application Server Layer）</p>
<p>- SAP各功能模块的应用程序组件基本都部署在应用服务器上</p>
<p><strong>3).</strong> 表示层 则安装到客户端（Presentation Server Layer）。</p>
<p>- 用户可以在不同的地点操作业务，同时也可以通过多个用户同时执行某一事务。</p>
<p>通常客户端安装的 SAP Logon Front End  也就是我们常说的SAP GUI；</p>
<p>用户在SAP会话层（SAP GUI）通过TCP/IP协议或RFC通过应用服务器访问到数据库，内部数据再进行处理后，返回结果给用户。</p>
<p>&nbsp;</p>
<h2><b>3. SAP</b><b>系统环境</b><b></b></h2>
<h3><b>3.1 Client </b><b>（客户端）</b></h3>
<p>在SAP的系统环境中，标准的项目配置环境有3种： DEV- 开发环境 、QAS &#8211; 质量保证/测试环境、PRD &#8211; 生产环境。</p>
<p><b>开发环境</b>是项目实施中进行大部分配置工作的环境，包括配置、开发-测试系统等Client；</p>
<p><b>测试环境</b>是在将相关配置内容传到生产环境前做所有的最终测试的环境，包括集成测试、用户培训、验收测试等Client。</p>
<p><b>生产环境</b>是用户进行日常业务活动操作的环境的，所有的最终用户都是在该客户端进行日常工作。</p>
<p>国内很多企业，都只搭建了 开发和生产环境，测试环境直接在开发环境中另外配置的Client 进行。</p>
<p>在登录系统时，需要输入相应系统环境的Client：</p>
<p><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_Appendix_Client.png" alt="abap_Appendix_Client" width="290" height="212" class="alignnone size-full wp-image-453" /></p>
<p>&nbsp;</p>
<h3><b>3.2</b><b>传输/</b><b>请求</b></h3>
<p>在系统环境中，传输就好像将相关配置内容、程序在Client和Client之间，以及不同系统环境之间进行传输的交通工具：</p>
<div id="attachment_48" style="width: 607px" class="wp-caption alignnone"><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Transporting_Repostiory_Object.png" alt="abap_1_Transporting_Repostiory_Object" width="597" height="420" class="alignnone size-full wp-image-459" /><p class="wp-caption-text">Transporting Repostiory Object</p></div>
<p>通常在开发环境，开发-测试Client中每一个配置（包括创建程序、数据字典等）操作，都需要产生一个新的请求，</p>
<p>然后才能通过传输组织器，传输到测试环境，再在测试环境传输到生产环境。</p>
<p>&nbsp;</p>
<h2><b>4. ABAP <span class='wp_keywordlink_affiliate'><a href="http://www.sapjx.com/tag/workbench" title="查看Workbench中的全部文章" target="_blank">Workbench</a></span> </b><b>相关工具</b></h2>
<div id="attachment_46" style="width: 859px" class="wp-caption alignnone"><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Workbench_Tools.png" alt="abap_1_Workbench_Tools" width="598" height="418" class="alignnone size-full wp-image-460" /><p class="wp-caption-text">Workbench Tools</p></div>
<p>ABAP Workbench的工具包括：</p>
<h3><strong>4.1. Object Navigator – SAP对象导航器</strong></h3>
<p>可以通过菜单路径 <b>Tools -&gt; ABAP Workbench -&gt;Overview -&gt; Object Navigator</b>  或者 <b>T-Code: <span style="color: #ff0000;">SE80</span></b> 进入对象导航器：</p>
<p>对象导航器为 ABAP Workbench的一部分，也是ABAP Workbench众多开发工具的中心入口，其将所有的对象开发工具整合在一起，并提供方便的导航功能。</p>
<p>可以导航到所有ABAP程序（包括标准与自定义程序），下图是对象导航器的基本开发界面 ：</p>
<div id="attachment_40" style="width: 982px" class="wp-caption alignnone"><img class="size-full wp-image-40" alt="Object Navigator" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Object_Navigator.png" width="972" height="717" /><p class="wp-caption-text">Object Navigator</p></div>
<p>导航菜单中相应的应用对象，具体的内容会在后续的篇章中涉及到，这里简单介绍下，不做详细说明:</p>
<h4><b>1). MIME Repository   -  MIME</b><b>资源库</b></h4>
<p>可以导航搜索 存放/上传到SAP中的多媒体文件，包括：图片、HTML、XML、Flash、声音等MIME类型文件。</p>
<h4><b>2). Repository Browser  &#8211; </b><b>资源浏览器</b></h4>
<p>可以通过下拉框（对象选择列表），筛选需要查找的对象类型：</p>
<p><img class="size-full wp-image-49 alignnone" alt="Repository Browser Object List" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Repository_Browser_Object_List1.png" width="207" height="226" /></p>
<p><img class="alignnone size-full wp-image-50" alt="abap_1_Repository_Browser_Object_List2" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Repository_Browser_Object_List2.png" width="361" height="413" /></p>
<ul>
<li>Application Hierarchy  -  应用层次，包括SAP程序包、程序、搜索帮助、数据表、数据域、事务码等所有应用程序组件。</li>
<li>Package  &#8211; 程序包，这里的概念跟java中的包是一致的，每个项目的开发，我们都必须自定义一个<b>程序包</b>来存放我们开发的程序。</li>
<li>Program &#8211; ABAP 程序</li>
<li><span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/function" title="Function" target="_blank">Function</a></span> Group &#8211; <span class='wp_keywordlink'><a href="http://www.sapjx.com/tag/function" title="函数" target="_blank">函数</a></span>组</li>
<li>Class/Interface -  类/接口</li>
<li>Internet Service &#8211; Internet 服务</li>
<li>Web Dynpro Comp./ Intf.  &#8211; Web Dynpro For ABAP组件程序（开发Web页面的程序）</li>
<li>BSP Application  -  Business Server Page 应用程序（开发Web页面的程序）</li>
<li>BSP Extension  -  Business Server Page 扩展程序 （开发Web页面的程序）</li>
<li>Inactive Objects  -  未激活对象  我们的程序开发完之后，需要激活之后才能有效的运行，未激活的都会已上次激活的程序为版本运行</li>
<li>Local Objects  -  本地对象  没有存放在程序包中的程序，可以选择放在本地对象里面，一般都是测试或者练习程序</li>
</ul>
<p><span style="color: #ff0000;"><b> 这里需要说明的是，对自定义程序的命名，都必须以Y</b><b>或者Z </b><b>字母开头来与SAP</b><b>标准程序区分开来，</b></span></p>
<p><span style="color: #ff0000;"><b> 包括所有的程序、功能模块、表及其他数据字典对象等。</b></span></p>
<p><span style="color: #ff0000;"><b> 而本系列文章的Demo</b><b>中的命名规则，都会在附录中说明。</b></span></p>
<p>&nbsp;</p>
<h4><b>3). Repository Information System  &#8211; </b><b>信息存储系统</b></h4>
<p>帮组用户快速查看类信息、数据字典信息、数据模型、商务对象、程序库信息等。</p>
<div id="attachment_42" style="width: 366px" class="wp-caption alignnone"><img class="size-full wp-image-42" alt="Repository Information System Objects" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Repository_Information_System_Objects.png" width="356" height="245" /><p class="wp-caption-text">Repository Information System Objects</p></div>
<p>&nbsp;</p>
<h4><b>4). Tag Browser  &#8211; </b><b>标签浏览器</b></h4>
<p>列出所有Web页面支持的HTML/XHTML标签及HTML模板:</p>
<p><img class="alignnone size-full wp-image-44" alt="Tag Browser" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Tag_Browser_All_Tags.png" width="358" height="343" /></p>
<p>&nbsp;</p>
<h4><b>5). Transport Organizer &#8211; </b><b>请求传输组织器</b></h4>
<p>列出当前用户所有可修改的请求，这里跟我们直接进入 事务码：se10的效果是一样的。</p>
<p><img class="alignnone size-full wp-image-45" alt="Transport Organizer" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Transport_Organizer_SAPJX.png" width="354" height="121" /></p>
<p>&nbsp;</p>
<h4><b>6). Test Repository  &#8211; </b><b>测试对象资源库</b></h4>
<p>关于CATT的文本对象，原本用于对程序实例的测试，后来多被模块顾问用于初始化数据的批量导入操作（以.TXT文本格式导入）。</p>
<p><img class="alignnone size-full wp-image-57" alt="Test Repository Object Lists" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Test_Repository_Object_Lists.png" width="205" height="152" /></p>
<p><img class="alignnone size-full wp-image-58" alt="Test Repository Object Lists" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Test_Repository_Object_Lists2.png" width="360" height="229" /></p>
<p>&nbsp;</p>
<h3><b>4.2. ABAP Editor – ABAP </b><b>编辑器 </b></h3>
<p>ABAP编辑器是ABAP Workbench的<strong>主要开发工具</strong>，几乎所有的报表程序，都是在ABAP 编辑器中开发编辑。</p>
<p>可以通过菜单路径 <b>Tools -&gt; ABAP Workbench -&gt; Development -&gt; ABAP Editor</b> 或者 <b>T-Code: <span style="color: #ff0000;">SE38</span></b> 进入到ABAP编辑器：</p>
<div id="attachment_53" style="width: 555px" class="wp-caption alignnone"><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_ABAP_Editor_Initial1.png" alt="abap_1_ABAP_Editor_Initial" width="545" height="343" class="alignnone size-full wp-image-454" /><p class="wp-caption-text">ABAP Editor Initial</p></div>
<p>在文本框中，可以输入程序名称后，点击 <strong>Create </strong>按钮，创建程序。</p>
<p>若你输入的程序名存在的话，则可以点击 <strong>Display </strong>或 Change 按钮，显示/修改该程序。</p>
<p>进入编辑器后，左边显示<em><strong>对象列表</strong></em>，程序中创建的 <em><strong>变量、结构 </strong></em>等，都会可以在对象列表中找到：</p>
<div id="attachment_52" style="width: 510px" class="wp-caption alignnone"><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_ABAP_Editor1.png" alt="abap_1_ABAP_Editor" width="500" height="483" class="alignnone size-full wp-image-456" /><p class="wp-caption-text">ABAP Editor</p></div>
<p>当程序编辑后之后，可以点击工具栏中的检查语法工具<img class="alignnone" alt="检查语法" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Icon_Check.png" width="31" height="25" />，检查程序在是否有错误的语法。</p>
<p>语法通过后，在运行程序前必须点击激活按钮<img class="alignnone" alt="激活" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Icon_Active.png" width="20" height="27" />激活程序，然后才能点击运行程序按钮<img alt="执行程序" src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_Icon_Exec.png" width="21" height="26" />执行程序。</p>
<p>&nbsp;</p>
<h3><strong>4.3. ABAP Dictionary – ABAP 数据字典维护器</strong></h3>
<p>可以通过菜单路径 <b>Tools -&gt; ABAP Workbench -&gt; Development -&gt; ABAP Dictionary</b> 或者 <b>T-Code: <span style="color: #ff0000;">SE11</span></b> 进入到ABAP数据字典：</p>
<p>可通过数据字典维护数据表、视图、数据类型、类型组、数据域、搜索帮助、锁对象等。</p>
<div id="attachment_51" style="width: 473px" class="wp-caption alignnone"><img src="http://www.sapjx.com/wp-content/uploads/2014/01/abap_1_ABAP_Dictionary1.png" alt="abap_1_ABAP_Dictionary" width="463" height="359" class="alignnone size-full wp-image-455" /><p class="wp-caption-text">ABAP Dictionary</p></div>
<p>详细的内容，可查看<b><a href="http://www.sapjx.com/sap-abap-dictionary.html" title=" SAP ABAP 数据字典" target="_blank">《SAP ABAP 数据字典》</a></b>章节。</p>
<p>&nbsp;</p>